package com.wjh.rules.common;


/**
 * @ClassName RuleEntity
 * @Description: 规则封装类
 * @Author wjh
 * @Date 2020年6月19日
 */
public class RuleEntity implements Cloneable {

    /**
     * 规则唯一标识
     */
    private String id;

    /**
     * 规则分类标识
     * <p>
     * 引擎的规则池里面有若干规则，sometimes ，需要进行分类。
     * 你加上了这个，返回的结果里面会给你分好类型。
     * 便于你后续操作
     */
    private String groupId;

    /**
     * 规则表达式，like this :
     * eg: ( alarmProvince == 新疆 or alarmProvince == 浙江 ) and ( specialty contains 内容网 or specialty == 传输网 ) and ( locateNeType == UPS电池 or locateNeType == SCP or locateNeType != 端口电路 )
     * <p>
     * == 等于
     * != 不等于
     * contains 包含
     * ncontains 不包含
     * in 列表范围的满足
     * noin 不在列表范围
     * > 大于
     * >= 大于等于
     * < 小于
     * <= 小于等于
     * like
     * notlike
     * range 区间
     * notrange 不存在区间
     * <p>
     * 持续更新
     */
    private String express;

    /**
     * 规则描述
     */
    private String ruleInfo;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getExpress() {
        return express;
    }

    public void setExpress(String express) {
        this.express = express;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    public String getRuleInfo() {
        return ruleInfo;
    }

    public void setRuleInfo(String ruleInfo) {
        this.ruleInfo = ruleInfo;
    }

    /**
     * 克隆方法
     */
    @Override
    public Object clone() {
        RuleEntity temp = null;
        try {
            temp = (RuleEntity) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        } finally {
            return temp;
        }
    }
}
